#ifndef CNC_BASE_MILL_PERSISTENT_DATA_H
#define CNC_BASE_MILL_PERSISTENT_DATA_H

#include "parameter.h"
#include "workofs.h"
#include "tooldata.h"
#include <bcm/bcm.h>

namespace cnc {

	namespace base {

		struct MillPersistentData : bcm::Interface
		{
			virtual bool load(const char *filename) = 0;
			virtual bool save(const char *filename) = 0;
			virtual void reset() = 0;
			virtual const char *getFirstParameterName() = 0;
			virtual const char *getNextParameterName() = 0;
			virtual Parameter *getParameter(const char *paramID) = 0;
			virtual unsigned int getNumWorkOffsets() const = 0;
			virtual WorkOffset *getWorkOffset(const unsigned int index) = 0;
			virtual unsigned int getNumToolOffsets() const = 0;
			virtual ToolData *getToolGeometry(const unsigned int index) = 0;
		};

	} // namespace base

} // namespace cnc

#endif

